/*
	@file: log/include/detail/LogFormat.h
	@author: Wolfhead
 */
#ifndef _LOG_LOG_FORMAT_H_
#define _LOG_LOG_FORMAT_H_

#include <string>
#include "../LogPriority.h"
#include "../LogData.h"

namespace logger
{

class LogFormat
{
public:
	static void format(LogDataPtr data_ptr, const std::string& format, std::string& output);

	static void append_priority(LogDataPtr data_ptr, std::string& output);

	static void append_thread_id(LogDataPtr data_ptr, std::string& output);

	static void append_date_time(LogDataPtr data_ptr, std::string& output);

	static void append_message(LogDataPtr data_ptr, std::string& output);

	static void append_filename(LogDataPtr data_ptr, std::string& output);

	static void append_function(LogDataPtr data_ptr, std::string& output);

	static void append_line(LogDataPtr data_ptr, std::string& output);

};

}//namespace logger


#endif // #ifndef _LOG_LOG_FORMAT_H_
